This application includes a section of a user manual for PowerAnimator(trademark) Version 7.5 entitled xe2x80x9cIntroduction to Curve Networksxe2x80x9d (pages 363 to 399). The copyright owner has no objection to paper reproduction of the appendix as it appears in this patent document, or in the official files of the U.S. Patent and Trademark Office, but grants no other license and reserves all other rights whatsoever. The entire appendix is hereby incorporated by reference as if fully set forth herein.
This invention relates to curve networks for computer modeling.
Many computer applications generate or model smooth curved surfaces. Computer aided design (CAD) systems, computer animation tools, and computer graphics applications are often used to replicate inherently smooth real-world objects, or to generate novel objects. Many objects are not susceptible to exact mathematical description, and are often modeled interactively by a user employing artistic instead of scientific criteria. Computer systems require satisfactory methods of representing these objects and their surfaces. Since computers have finite storage and processing capacity, an object cannot be modeled with an infinite number of coordinate points. Instead, various methods approximate object surfaces with segments such as planes, lines, and other object xe2x80x9cprimitivesxe2x80x9d that are easier to describe mathematically.
One modeling method uses a polygon mesh, a set of connected polygonally bounded planar surfaces. Rectilinear objects, such as boxes or buildings, can be easily modeled with polygon meshes. Representing objects with curved surfaces using a polygon mesh requires approximating a curved surface by a number of smaller planar segments. Error between the approximated representation and the real object can be made arbitrarily small by using more polygons. Using larger numbers of segments requires greater computer memory storage and computation capacity.
Another modeling method uses sets of parametric bivariate (two-variable) polynomial surface patches to represent a curved object. By using inherently curved surface segments, this method enables a computer modeler to represent arbitrary curved surfaces very accurately. Typically, an object is broken down into a set of connected surface area faces, each face is modeled with a parametric polynomial surface, and the surfaces are connected together to yield the final object representation. The algorithms for employing bivariate polynomial surfaces are more complex than those for polygons, but fewer polynomial surface patches are required to approximate a curved surface to a given accuracy than with polygon meshes.
Typically, polynomial surface methods employ parametric equations based on cubic polynomial equations of a parameter (for a curve segment, one parameter is used, e.g., xe2x80x9ctxe2x80x9d; for a surface, two parameters are used, e.g., xe2x80x9cuxe2x80x9d and xe2x80x9cvxe2x80x9d). A number of different polynomial forms for curves and surfaces have been developed, including Hermite, Bezier, and B-spline. Whatever parameter form is chosen, one or more surfaces can be generated based upon a compact set of control points (or vertices) that unambiguously define the shape of a given curve or surface. The boundaries or edges between two polynomial surfaces can be continuous in position, tangent and curvature (0th, 1st, and 2nd derivatives). As a modeler builds up an object representation, each surface can be attached to the next, and continuity constraints across the boundary can be set to yield transitions having an arbitrary sharpness or smoothness, as desired.
In general, in a first aspect, the invention features a method of computer surface modeling including the steps of storing in a computer memory a curve network of intersecting curves, and automatically determining faces from the curve network.
Implementations of the invention may include the following features. The intersections of the curves may be automatically determined, the intersections forming vertices. Curve segments between intersections of the curves may be automatically determined, the curve segments forming edges. The faces may be closed regions formed by curve segments of the intersecting curves. An interpolated curved surface for a corresponding one of the faces may be automatically calculated and stored in the computer memory. The faces may be automatically determined by a topology estimation routine. The topology estimation routine may search coupled curve segments lying between intersections of the-curves. The intersecting curves may include b-spline, non-uniform rational b-spline, or non-uniform non-rational b-spline parameterized curves. The interpolated surface may include a b-spline parameterized surface. The face may be formed from any number of coupled curve segments, or may be only three-sided or four-sided, or only four-sided. The interpolated surface may be four-sided, or the interpolated surface may be generated as four-sided and then clipped if the corresponding face is not four-sided. The curve network may be interactively generated by a user of the computer surface modeling method. Forming the curve network may include calculating and recording each intersection between all intersecting pairs of the plurality of intersecting curves as vertices, and calculating and recording each curve segment along each of the plurality of curves between successive vertices as edges.
In general, in another aspect, the invention features a method of computer surface modeling including the steps of storing in a computer memory a curve network of intersecting curves, and an interpolated surface for a face of the curve network, and modifying the interpolated surface in response to manipulation of a control curve.
Implementations of the invention may include the following features. Modifying the interpolated surface may include sampling the control curve at a sampling point, coupling the sampling point to a projection point on the interpolated surface, and controlling the shape of the interpolated surface at the projection point based upon the coupled sampling point. Controlling the shape of the interpolated surface may include performing a constrained least squares minimization calculation in which the coupled projection point is a constraint, and a control vertex of the interpolated surface is a free variable.
In general, in another aspect, the invention features, a method of computer surface modeling including the steps of storing in a computer memory a curve network of intersecting curves defining faces and edges, setting a continuity constraint at an edge of a first one of the faces, and automatically generating and storing in the computer memory an interpolated curved surface for the first face based on the set continuity constraint.
Implementations of the invention may include the following features. The continuity constraint may include positional continuity, tangential continuity, or curvature continuity. The edge may couple the first face to a second face. An interpolated curved surface for the second subject to the set continuity constraint may be automatically generated and stored in the computer memory.
In general, in another aspect, the invention features an interface method for use with a computer-based surface modeling program including the steps of enabling a user to define interactively curves forming portions of a curve network associated with a surface being modeled, and automatically, in response to the defining of curves by the user, determining faces associated with the curves.
In general, in another aspect, the invention features an interface method for use with a computer-based surface modeling program including the steps of enabling a user to manipulate interactively a curved control element shown on a display, and automatically altering a surface being modeled in response to the user""s manipulations of the curved control element.
The advantages of the invention may include one or more of the following. A computer modeler does not have to construct each surface individually, stitching them together into a completed object. The modeler need only generate the overall structure of the object with curves, and the system will generate all surfaces. The modeler does not need to worry about enforcing continuity requirements across surface edges once these have been specified: as curves in the network are varied or added, the system recalculates all affected surfaces, automatically enforcing continuity. For generating finer detail, sculpt curves may be added at any location on the object. The system automatically alters the local shape of surfaces based upon the shape of the sculpt curve, and its coupling weights and region of influence assigned by the modeler. The curve network may be designed first, for xe2x80x9cgrossxe2x80x9d control of surface shape, and sculpt curves may be added for xe2x80x9cfinexe2x80x9d control. A user may switch back and forth among these curves as needed. Once attached, a sculpt curve provides an extraordinarily intuitive xe2x80x9chandlexe2x80x9d for adjusting the local shape of surface, and any number of sculpt curves may be added to generate appropriate fine details. Further, the system automatically continues to enforce surface continuity requirements even while adjusting local surfaces towards sculpt curves, relieving the modeler of tedious, difficult details.
Other features and advantages of the invention will become apparent from the following description and from the claims.